From: Chandni Cherukuri Date: Tue, 16 Oct 2018 08:45:31 +0000 (+0530) Subject: plat/arm/sgi: add platform support for SGI-Clark.Helios platform X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22/%22https:/collectd.org/%22?a=commitdiff_plain;h=982261f7ece7a5524efd5b3f1b42b08cca777151;p=project%2Fbcm63xx%2Fatf.git plat/arm/sgi: add platform support for SGI-Clark.Helios platform SGI-Clark.Helios platform is based on multi-threaded CPUs and uses an additional thread power domain level as well. Define a power domain tree descriptor 'sgi_clark_helios_pd_tree_desc' for SGI-Clark.Helios platform and let the function 'plat_get_power_domain_tree_desc' pick up the correct power domain tree descriptor based on the platform. Change-Id: Ibc6d551b570bc740053316a3608c455679d9155b Signed-off-by: Chandni Cherukuri --- diff --git a/plat/arm/css/sgi/include/sgi_variant.h b/plat/arm/css/sgi/include/sgi_variant.h index 56dc3344..e9b96dd4 100644 --- a/plat/arm/css/sgi/include/sgi_variant.h +++ b/plat/arm/css/sgi/include/sgi_variant.h @@ -12,6 +12,7 @@ /* SID Version values for SGI-Clark */ #define SGI_CLARK_SID_VER_PART_NUM 0x0786 +#define SGI_CLARK_HELIOS_CONFIG_ID 0x2 /* Structure containing SGI platform variant information */ typedef struct sgi_platform_info { diff --git a/plat/arm/css/sgi/sgi_topology.c b/plat/arm/css/sgi/sgi_topology.c index e524f11f..2921c0c2 100644 --- a/plat/arm/css/sgi/sgi_topology.c +++ b/plat/arm/css/sgi/sgi_topology.c @@ -5,6 +5,7 @@ */ #include +#include /* Topology */ /* @@ -19,12 +20,39 @@ const unsigned char sgi_pd_tree_desc[] = { CSS_SGI_MAX_CPUS_PER_CLUSTER }; +/* SGI-Clark.Helios platform consists of 16 physical CPUS and 32 threads */ +const unsigned char sgi_clark_helios_pd_tree_desc[] = { + PLAT_ARM_CLUSTER_COUNT, + CSS_SGI_MAX_CPUS_PER_CLUSTER, + CSS_SGI_MAX_CPUS_PER_CLUSTER, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU, + CSS_SGI_MAX_PE_PER_CPU +}; + /******************************************************************************* * This function returns the topology tree information. ******************************************************************************/ const unsigned char *plat_get_power_domain_tree_desc(void) { - return sgi_pd_tree_desc; + if (sgi_plat_info.platform_id == SGI_CLARK_SID_VER_PART_NUM && + sgi_plat_info.config_id == SGI_CLARK_HELIOS_CONFIG_ID) + return sgi_clark_helios_pd_tree_desc; + else + return sgi_pd_tree_desc; } /*******************************************************************************